#pragma once

#include  "iostream"
#include  "vector"
#include  "stack"
#include  "unordered_map"
#include   "queue"
#include "algorithm"

using namespace std;

/*
 * 给你一个整型数组 nums ，在数组中找出由三个数组成的最大乘积，并输出这个乘积。



示例 1：

输入：nums = [1,2,3]
输出：6
示例 2：

输入：nums = [1,2,3,4]
输出：24
示例 3：

输入：nums = [-1,-2,-3]
输出：-6
 *
 *
 *
 * */
//感觉还是稍微参考了一下了
int maximumProduct(vector<int> &nums) {

    sort(nums.begin(), nums.end());

    int a = nums[0] * nums[1] * nums[nums.size() - 1];
    int b = nums[nums.size() - 1] * nums[nums.size() - 2] * nums[nums.size() - 3];
    return max(a, b);
}